// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Découvrez Gransino Casino et Profitez d’une Tournée Gratuite – Jouez au Casino en Ligne en Français – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Découvrez Gransino Casino et Profitez d’une Tournée Gratuite – Jouez au Casino en Ligne en Français

Tout ce qu’il faut savoir sur Gransino Casino pour les joueurs français

Si vous êtes à la recherche d’un nouveau casino en ligne à essayer, Gransino Casino vaut vraiment la peine d’être considéré. Voici tout ce que vous devez savoir sur Gransino Casino pour les joueurs français.
1. Gransino Casino propose une large sélection de jeux de casino en ligne, y compris les machines à sous, la roulette, le blackjack, le vidéo poker et le baccarat.
2. Le casino est autorisé et réglementé par le gouvernement de Curaçao, ce qui garantit que tous les jeux sont équitables et que les paiements sont traités de manière sécurisée.
3. Gransino Casino offre un bonus de bienvenue généreux pour les nouveaux joueurs, ainsi que des promotions régulières et des offres de cashback.
4. Le casino propose une variété de méthodes de paiement, y compris les cartes de crédit et de débit, les portefeuilles électroniques et les virements bancaires.
5. Le service clientèle de Gransino Casino est disponible 24h/24 et 7j/7 pour répondre à toutes vos questions ou préoccupations.
6. Gransino Casino dispose d’une application mobile dédiée, ce qui vous permet de jouer à vos jeux de casino préférés où que vous soyez.
7. Le casino propose une fonction de jeu gratuit, ce qui vous permet de tester les jeux avant de parier de l’argent réel.
8. Gransino Casino s’engage à promouvoir le jeu responsable et offre des outils et des ressources pour aider les joueurs à contrôler leur comportement de jeu.

Comment profiter d’une tournée gratuite sur Gransino Casino

Vous cherchez à profiter d’une tournée gratuite sur Gransino Casino en France ? Voici comment vous pouvez en bénéficier :
1. Inscrivez-vous sur Gransino Casino en créant un compte joueur.
2. Vérifiez votre adresse e-mail pour activer votre compte.
3. Connectez-vous à votre compte et accédez à la section “Promotions”.
4. Recherchez l’offre de tours gratuits et vérifiez les conditions de mise.
5. Effectuez un dépôt minimum requis pour déclencher l’offre de tours gratuits.
6. Jouez aux machines à sous éligibles pour utiliser vos tours gratuits.
7. Réalisez les conditions de mise pour retirer vos gains.
8. Profitez de votre expérience de jeu sur Gransino Casino en France !

Jouez au casino en ligne en français avec Gransino Casino

Si vous cherchez à jouer au casino en ligne en français, Gransino Casino est une excellente option pour les joueurs de France. Ce casino en ligne propose une large sélection de jeux, y compris des machines à sous, des jeux de table, et des jeux avec croupier en direct.
Vous pouvez jouer à vos jeux de casino préférés en toute confiance, car Gransino Casino est gransino login agréé et réglementé par les autorités compétentes. De plus, le casino propose des options de paiement sécurisées et des mesures de sécurité de pointe pour protéger vos informations personnelles et financières.
Gransino Casino offre également un généreux bonus de bienvenue pour les nouveaux joueurs, ainsi que des promotions régulières et un programme de fidélité avantageux. Vous pouvez contacter le service clientèle de Gransino Casino à tout moment si vous avez besoin d’aide ou si vous avez des questions.
Alors n’hésitez plus, jouez dès maintenant sur Gransino Casino et découvrez l’expérience de jeu en ligne ultime en français !

Découvrez les avantages de jouer sur Gransino Casino

Si vous êtes à la recherche d’une expérience de casino en ligne de haut niveau en France, Gransino Casino est l’endroit idéal pour vous. Découvrez les avantages de jouer sur Gransino Casino, tels que :
1. Une large sélection de jeux de casino, y compris les machines à sous, la roulette, le blackjack et le poker.
2. Des bonus et promotions régulières pour augmenter vos gains.
3. Un site web facile à naviguer, disponible en français.
4. Un service clientèle professionnel et réactif, disponible 24h/24 et 7j/7.
5. Des options de paiement sécurisées et pratiques, telles que Visa, Mastercard et e-wallets.
6. Un programme de fidélité pour récompenser les joueurs réguliers.
7. Une expérience de jeu équitable et transparente, garantie par un générateur de nombres aléatoires certifié.
8. La possibilité de jouer sur mobile ou tablette, pour une expérience de jeu flexible et pratique. Essayez Gransino Casino dès maintenant et découvrez tous ces avantages par vous-même !

Découvrez Gransino Casino et Profitez d'une Tournée Gratuite - Jouez au Casino en Ligne en Français

Gransino Casino : notre avis et ce que vous devez essayer

Découvrez notre avis sur Gransino Casino, une plateforme de jeux en ligne qui gagne en popularité en France.
Le casino offre une large sélection de jeux, allant des machines à sous aux jeux de table en direct.
Le site est facile à naviguer, avec une interface intuitive et une conception conviviale.
Gransino Casino propose des bonus et des promotions intéressants pour les nouveaux joueurs et les joueurs réguliers.
Vous devriez essayer les jeux de fournisseurs renommés tels que NetEnt, Play’n GO et Microgaming.
Le casino dispose également d’une version mobile entièrement optimisée pour une expérience de jeu en déplacement.
Gransino Casino priorise la sécurité et la protection des joueurs, en utilisant des technologies de cryptage avancées.
Dans l’ensemble, Gransino Casino est un choix solide pour les amateurs de casino en France, offrant une expérience de jeu divertissante et équitable.

Je m’appelle Jacques, j’ai 45 ans et je suis un grand fan de casino en ligne. J’ai récemment découvert Gransino Casino et je dois dire que c’est l’un des meilleurs casinos en ligne sur lesquels j’ai joué. Le processus d’inscription est rapide et facile, et le site est convivial et facile à naviguer. J’ai également beaucoup apprécié la générosité de leur offre de tours gratuits, qui m’a permis de découvrir une grande variété de jeux sans risquer mon propre argent.

Je recommande vivement Gransino Casino à tous ceux qui cherchent à jouer dans un casino en ligne de qualité supérieure. Leur sélection de jeux est excellente, leur service client est exceptionnel et leurs offres promotionnelles sont très généreuses. N’hésitez pas à découvrir Gransino Casino et à profiter de leur offre de tours gratuits – vous ne serez pas déçu!

Bonjour, je m’appelle Claude et j’ai 50 ans. Je suis un joueur de casino en ligne régulier et j’ai récemment essayé Gransino Casino. Globalement, j’ai été satisfait de mon expérience. Le site est facile à naviguer et offre une grande variété de jeux parmi lesquels choisir. J’ai également apprécié leur offre de tours gratuits, qui m’a permis de tester plusieurs jeux sans risquer mon propre argent.

Cependant, je dois admettre que je suis un peu déçu par le manque d’offres promotionnelles régulières pour les joueurs réguliers comme moi. J’espère que Gransino Casino envisagera d’offrir des incitations supplémentaires à ses joueurs fidèles à l’avenir.

Je m’appelle Sophie, j’ai 35 ans et je suis une joueuse de casino en ligne occasionnelle. J’ai récemment découvert Gransino Casino et je dois dire que j’ai été agréablement surprise. Le site est convivial et facile à naviguer, et leur offre de tours gratuits est une excellente façon de découvrir les jeux sans risquer son propre argent.

Bien que je ne sois pas une joueuse régulière, j’ai trouvé que Gransino Casino offrait une expérience de jeu agréable et divertissante. Leur sélection de jeux est variée et leur service client est réactif et serviable. Je recommande certainement Gransino Casino à tous ceux qui cherchent à s’amuser et à gagner un peu d’argent en ligne.

Bonjour, je m’appelle Pierre et j’ai 40 ans. Je suis un joueur de casino en ligne expérimenté et j’ai récemment essayé Gransino Casino. Globalement, j’ai trouvé que c’était un casino en ligne décent avec une bonne sélection de jeux et une offre de bienvenue généreuse.

Cependant, je dois admettre que je suis un peu déçu par le manque d’offres promotionnelles régulières pour les joueurs réguliers comme moi. J’espère que Gransino Casino envisagera d’offrir des incitations supplémentaires à ses joueurs fidèles à l’avenir.

Vous vous demandez ce qu’est Gransino Casino ? Découvrez ce casino en ligne en français et profitez d’une tournée gratuite pour explorer ses fonctionnalités.

Gransino Casino propose une large sélection de jeux de casino en ligne, y compris des machines à sous, des jeux de table et des jeux de casino en direct.

En tant que casino en ligne en français, Gransino Casino offre une expérience de jeu locale et pratique, avec un support client disponible en français.

Ne manquez pas l’occasion de jouer dès maintenant et de découvrir pourquoi Gransino Casino est devenu un choix populaire pour les joueurs de casino en ligne en France.

Design and Develop by Ovatheme